package com.qys.livesMall.financial.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qys.livesMall.financial.model.dto.sys.FinancialOfflinePageDTO;
import com.qys.livesMall.financial.model.dto.sys.FinancialOfflineSaveDTO;
import com.qys.livesMall.financial.model.entity.FinancialOffline;
import com.qys.livesMall.financial.model.vo.app.AppFinancialOfflinePageVO;
import com.qys.livesMall.financial.model.vo.sys.FinancialOfflinePageVO;
import com.qys.livesMall.financial.model.vo.sys.FinancialOfflineVO;
import com.qys.livesMall.framework.view.BaseQuery;

/**
 * <p>
 * 线下理财 服务类
 * </p>
 *
 * @author
 * @since 2023-06-10
 */
public interface FinancialOfflineService extends IService<FinancialOffline> {

    /**
     * 分页查询线下理财信息
     *
     * @param pageDTO {@link  FinancialOfflinePageDTO}
     */
    Page<FinancialOfflinePageVO> pageBySys(FinancialOfflinePageDTO pageDTO);

    /**
     * 新增/编辑线下理财信息
     *
     * @param saveDTO {@link  FinancialOfflineSaveDTO}
     */
    void save(FinancialOfflineSaveDTO saveDTO);

    /**
     * 删除线上理财
     *
     * @param id
     */
    void deleteById(Long id);

    /**
     * 上架下架
     *
     * @param id
     */
    void shelves(Long id);

    /**
     * APP-分页查询线下理财信息
     *
     * @param baseQuery {@link  BaseQuery}
     */
    Page<AppFinancialOfflinePageVO> pageByApp(BaseQuery baseQuery);

    /**
     * 根据id查询任务信息
     *
     * @param id
     */
    FinancialOfflineVO queryById(Long id);

    /**
     * APP用户理财权限校验
     *
     * @param offlineId 理财id
     */
    void checkPromiseByApp(Long offlineId);
}
